package com.czj.service;

import com.czj.common.api.CommonResult;
import com.czj.dto.CardParam;
import com.czj.model.Card;
import com.czj.model.Permission;
import com.czj.model.User;

import java.util.List;

public interface UserService {

    /**
     * 根据用户名获取用户信息
     */
    User getUserByUsername(String username);

    /**
     * 注册功能
     */
    User register(User user);

    /**
     * 登录功能
     * @param username 用户名
     * @param password 密码
     * @return 生成的JWT的token
     */
    String login(String username, String password);

    /**
     * 获取用户所有权限（包括角色权限和+-权限）
     */
    List<Permission> getPermissionList(Integer userId);

    /**
     * 添加用户身份证认证
     * @param username
     * @param cardParam
     * @return
     */
    CommonResult<String> insertCard(String username, CardParam cardParam);

    /**
     * 根据 用户 id 修改用户信息
     * @param user
     * @return
     */
    CommonResult<String> updateUserById(User user);

    /**
     * 注销用户
     * @param username
     * @return
     */
    CommonResult<String> deleteUserById(String username);

    /**
     * 获取验证码
     * @param username
     * @return
     */
    CommonResult getCode(String username);

    /**
     * 检验验证码是否正确
     * @param username
     * @param code
     * @return
     */
    CommonResult checkCode(String username,String code);
}
